//在真实环境中，如果使用firebase这种第三方auth服务的话，则本文件不需要开发者开发

import {User} from '../src/screens/project-list/search-panel'

const localStorageKey = "__auth_provider_token__"

export const getToken = () => window.localStorage.getItem(localStorageKey)

export const handleUserResponse = ({user}: {user: User}) => {
    window.localStorage.setItem(localStorageKey, user.token || '')
    return user
}

export const login = (data: {username: string, password:string}) => {
    const apiUrl = process.env.REACT_APP_API_URL;
    return fetch(`${apiUrl}/login`, {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
        },
        body: JSON.stringify(data),
      }).then(async (res: Response) => {
        console.log("res", res);
        if (res.ok) {
            return handleUserResponse(await res.json())
        }else{
            return Promise.reject(await res.json())
        }
      });
}

export const register = (data: {username: string, password:string}) => {
    const apiUrl = process.env.REACT_APP_API_URL;
    return fetch(`${apiUrl}/register`, {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
        },
        body: JSON.stringify(data),
      }).then(async (res: Response) => {
        console.log("res", res);
        if (res.ok) {
            return handleUserResponse(await res.json())
        }else{
            return Promise.reject(await res.json())
        }
      });
}

export const logout = async () => window.localStorage.removeItem(localStorageKey)